using System.Collections.Generic;
using DecisionMaking.BusinessLogic.Model;
using DecisionMaking.Domain.Reports;

namespace DecisionMaking.BusinessLogic
{
    /// <summary>
    /// Responsible for displaying statistics regarding past executions and algorithms
    /// </summary>
    public interface IReportManager
    {
        /// <summary>
        /// Queries for a Competiton Result report
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        IList<CompetitionResultReportEntry> GetAverageProportionOfCorrectInferences(ReportModel model);

        /// <summary>
        /// Queries for an Algorithm performance report
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        IList<AlgorithmPerformanceReportEntry> GetSingleAlgorithmPerformance(ReportModel model);

        /// <summary>
        /// Queries for a cross-Algorithm performance report
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        IList<AlgorithmPerformanceReportEntry> GetAllAlgorithmsPerformance(ReportModel model);
    }
}